modelbutton: Don't include margins in input window size
authorTimm Bäder <mail@baedert.org>
Tue, 12 Jan 2016 19:25:25 +0000 (20:25 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 12 Jan 2016 20:56:49 +0000 (21:56 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=760509

gtk/gtkmodelbutton.c

index adeac69c6a41275c94030c4784f72b92ea2f630d..e67a57e01e8e20ff18ef7b8b48443aad02618aa1 100644 (file)
@@ -860,12 +860,6 @@ gtk_model_button_size_allocate (GtkWidget     *widget,
     gadget = GTK_MODEL_BUTTON (widget)->gadget;
 
   gtk_widget_set_allocation (widget, allocation);
-
-  if (gtk_widget_get_realized (widget))
-    gdk_window_move_resize (gtk_button_get_event_window (GTK_BUTTON (widget)),
-                            allocation->x, allocation->y,
-                            allocation->width, allocation->height);
-
   gtk_css_gadget_allocate (gadget,
                            allocation,
                            gtk_widget_get_allocated_baseline (widget),
@@ -959,6 +953,19 @@ gtk_model_button_allocate (GtkCssGadget        *gadget,
     (pango_font_metrics_get_ascent (metrics) + pango_font_metrics_get_descent (metrics));
   pango_font_metrics_unref (metrics);
 
+
+  if (gtk_widget_get_realized (widget))
+    {
+      GtkAllocation border_allocation;
+      gtk_css_gadget_get_border_allocation (gadget, &border_allocation, NULL);
+
+      gdk_window_move_resize (gtk_button_get_event_window (GTK_BUTTON (widget)),
+                              border_allocation.x,
+                              border_allocation.y,
+                              border_allocation.width,
+                              border_allocation.height);
+    }
+
   gtk_container_get_children_clip (GTK_CONTAINER (widget), out_clip);
   gdk_rectangle_union (out_clip, &check_clip, out_clip);
 }